<?php
namespace Syrius\Validator;
/**
 * Date: 19/09/11
 * Time: 7.31
 * @package     Validator
 * @author      Domenico Biancardi <domenico.biancardi@gmail.com>
 * @link        http://code.google.com/p/syrius/
 */

abstract class Validator {
    /**
     * Messaggio di errore specifico per il tipo di validatore
     * @var string
     */
    private $_message = "Generic error";
    private $_value;

    public function __construct() {

    }

    /**
     * Indica se il controllo è valido o meno
     * @param value
     * @return bool
     */
    abstract public function isValid();

    /**
     * @param string $message
     */
    public function setMessage($message) {
        $this->_message = $message;
    }

    /**
     * @return string
     */
    public function getMessage() {
        $str = $this->_message;
        $str = str_replace("{value}", $this->_value, $str);
        return $str;
    }

    protected function setValue($value) {
        $this->_value = $value;
    }

    protected function getValue() {
        return $this->_value;
    }

}